import pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts

# 假设您已经有了一个包含省份和数量的DataFrame
# df = pd.read_csv('data.csv', header=None, names=['依托单位', '地点', '数量'])
# 为了示例，我们创建一个简单的DataFrame
file_path = 'D:/Courses/SmallThree/scrapy_spider/data.csv'

# 读取CSV文件
df = pd.read_csv(file_path, encoding='gbk')

# 统计每个省份的出现次数
province_counts = df['province'].value_counts().reset_index()
# 重命名列名，使其更易于理解
province_counts.rename(columns={'index': '省份', 'province': '数量'}, inplace=True)

# 将DataFrame转换为列表，格式为[('广东省', 100), ...]
# 注意：这里的100是示例，实际应该是每个省份的计数
data = list(province_counts.itertuples(index=False, name=None))
#data = [('广东省', 100), ('北京市', 80), ('上海市', 120), ('浙江省', 90)]
df = pd.DataFrame(data, columns=['地点', '数量'])

# 创建地图
map = Map()
map.add("实验室数量", [list(z) for z in zip(df['地点'], df['数量'])], "china")
map.set_global_opts(
    title_opts=opts.TitleOpts(title="中国地图 - 实验室数量"),
    visualmap_opts=opts.VisualMapOpts(max_=df['数量'].max()),
)

# 设置系列标签不显示
map.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

# 生成HTML文件
html_file = "D:/Courses/SmallThree/scrapy_spider/china_map_with_counts.html"
map.render(html_file)
